package org.dromara.oce.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;

import java.io.Serial;
import java.math.BigDecimal;

/**
 * 素材对象 oce_material
 *
 * @author dsbb
 * @date 2025-06-05
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("oce_material")
public class OceMaterial extends BaseEntity  {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 素材id
     */
    @TableId(value = "material_id", type = IdType.INPUT)
    private Long materialId;

    /**
     * 管家账号id
     */
    private Long accountId;

    /**
     * 广告主id
     */
    private Long advertiserId;

    /**
     * 视频id
     */
    private String id;

    /**
     * 素材的文件名
     */
    private String filename;

    /**
     * 视频标签
     */
    private String labels;

    /**
     * 视频首帧截图，仅限同主体进行素材预览查看，若非同主体会返回 素材所属主体与开发者主体不一致无法获取URL
     */
    private String posterUrl;

    /**
     * 视频地址，仅限同主体进行素材预览查看
     */
    private String url;

    /**
     * 视频宽度
     */
    private Long width;

    /**
     * 视频高度
     */
    private Long height;

    /**
     * 视频大小
     */
    private Long size;

    /**
     * 视频格式
     */
    private String format;

    /**
     * 视频md5值
     */
    private String signature;

    /**
     * 视频时长
     */
    private BigDecimal duration;

    /**
     * 码率，单位bps
     */
    private Long bitRate;

    /**
     * 素材来源：AD_SITE-ad后台本地上传；
     */
    private String source;

    /**
     * 星图达人ID
     */
    private String starAuthorId;


    /**
     * 是否是首发素材：0-未同步；1-是；2-否；
     */
    private Integer isFirstPublishMaterial;

    /**
     * 是否AD优质素材：0-未同步；1-是；2-否；
     */
    private Integer isAdHighQualityMaterial;

    /**
     * 是否AD低质素材：0-未同步；1-是；2-否；
     */
    private Integer isAdLowQualityMaterial;

    /**
     * 是否存在搬运风险0-未同步；1-是；2-否；建议入参account_type = AD 或 QIANCHUAN查询
     */
    private Integer isCarryMaterial;

    /**
     * 是否同质化挤压严重素材：0-未同步；1-是；2-否；
     */
    private Integer isSimilarMaterial;

    /**
     * 是否同质化素材风险-排队投放素材 ：0-未同步；1-是；2-否；
     */
    private Integer isSimilarQueueMaterial;

    /**
     * 是否同质化素材风险-未投放预计排队素材：0-未同步；1-是；2-否；
     */
    private Integer isSimilarExpectedQueueMaterial;

    /**
     * 「存在搬运打压风险」属性最后一次更新时间，如素材未被标记为搬运，则不会返回该时间
     */
    private String attributesModifyTime;

    /**
     * 当该素材为AD低质素材时，返回低质原因，仅当return_lowquality_suggestions = true时，会返回此参数
     */
    private String adLowQualitySuggestions;


}
